package com.zhangjingcheng.yunyixia.service;

import com.zhangjingcheng.yunyixia.pojo.dto.GetShareFileDTO;
import com.zhangjingcheng.yunyixia.pojo.dto.ShareDTO;
import com.zhangjingcheng.yunyixia.pojo.dto.ShareListDTO;
import com.zhangjingcheng.yunyixia.pojo.vo.ShareListVO;
import com.zhangjingcheng.yunyixia.pojo.vo.ShareUserVO;
import com.zhangjingcheng.yunyixia.pojo.vo.ShareVO;
import com.zhangjingcheng.yunyixia.result.PageResult;
import jakarta.servlet.http.HttpServletResponse;

import java.util.List;

public interface ShareService {
    /**
     * 分享文件
     * @param shareDTO
     * @return
     */
    ShareVO share(ShareDTO shareDTO);

    /**
     * 批量取消分享
     * @param ids
     */
    void cancelShare(List<Integer> ids);

    /**
     * 获取分享文件列表
     * @param dto
     * @return
     */
    PageResult<ShareListVO> list(ShareListDTO dto);

    /**
     * 获取分享文件
     * @param dto
     */
    void getShareFile(GetShareFileDTO dto, HttpServletResponse response);

    /**
     * 获取分享文件信息
     * @param id
     * @return
     */
    ShareUserVO getShareFileInfo(Integer id);

    /**
     * 获取下载链接
     * @param id
     * @return
     */
    String getDownloadCode(Integer id);
}
